//DirectX Application Class Header File
//Base Class for DirectX Application
#pragma once

	//Library Include Files//
#include <d3d9.h>
#pragma comment(lib, "d3d9.lib")
#include <d3dx9.h>
#pragma comment(lib, "d3dx9.lib")

	//Project Include Files//
#include "Core.hpp"

	//Globals & Constants//
#define MINSHADERVERSION = 2

/**********************************************************************************************************************\
|	Class to handle all DirectX functionality																		   |
\**********************************************************************************************************************/
class DirectXApp : public Core
{
protected:
	IDirect3D9*				m_D3DObject;
	IDirect3DDevice9*		m_D3DDevice;
	ID3DXSprite*			m_D3DSprite;
	HWND					m_hWnd;

	D3DXMATRIX				m_WorldMat;
	D3DXMATRIX				m_TransMat;
	D3DXMATRIX				m_RotatMat;
	D3DXMATRIX				m_ScaleMat;

public:
	DirectXApp();

	void Init(HWND hWnd);
	void Update();
	void Render();
	void Exit();

	~DirectXApp();
};	//End DirectXApp Class
